﻿$(function () {
    let op = location.search.substring(1);
    changeForm(op);
    //=============登录验证=============
    $('#login').bootstrapValidator({
        message: 'This value is not valid',
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            // invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            username: {
                // 提示信息
                message: '用户名无效',
                // 验证规则
                validators: {
                    notEmpty: {
                        message: '用户名必须填写，不能为空'
                    },
                    stringLength: {
                        min: 4,
                        max: 10,
                        message: '用户名是4到10位的字符'
                    },
                    remote: { // 注意，这里不用拼接字符串.直接把要验证的字符放后面就行。
                        url: '/user/checkLogin' + $("#login input[name=username]").val(),
                        message: '用户名不存在',
                        delay: 500,
                        type: 'get',
                    },
                    // 自定义正则
                    regexp: {
                        //regexp: /^[\u4e00-\u9fa5]+$/,
                        regexp: /^[a-z|0-9|A-Z]+$/,
                        // message: '用户名必须是中文',
                        message: '用户名是英文或数字组合'
                    }
                }
            },
            password: {
                validators: {
                    notEmpty: {
                        message: '密码必须填写，不能为空'
                    },
                    stringLength: {
                        min: 6,
                        max: 20,
                        message: '密码应该是6-20位的字符'
                    },
                    // 自定义正则
                    regexp: {
                        regexp: /^[a-z|0-9|A-Z]+$/,
                        message: '密码是英文或数字组合'
                    }
                }
            },
            validatecode: {
                validators: {
                    notEmpty: {
                        message: '验证码必须填写，不能为空'
                    },
                    stringLength: {
                        min: 4,
                        max: 4,
                        message: '请输入正确长度的验证码'
                    }
                }
            }
        }
        // 验证成功后的提交
    }).on('success.form.bv', function (e) {
        // Prevent form submission
        e.preventDefault();
        // 得到表单实例
        var $form = $(e.target);
        // 得到BootstrapValidation 验证实例
        var bv = $form.data('bootstrapValidator');
        // 使用ajax提交表单
        $.post($form.attr('action'), $form.serialize(), function (result) {
            // 获得提交后的json内容
            if ("passwordError" == result) {
                alert("密码错误");
                changeCode();
            } else if ("codeError" == result) {
                alert("验证码错误");
                changeCode();
            } else if ("locked" === result) {
                alert("该账号被锁定无法登陆");
                changeCode();
            } else if ("success" == result) {
                alert("登录成功");
                location.href = "index.html";
            }
        });
    });
    //=============注册验证=============
    $('#register').bootstrapValidator({
        message: 'This value is not valid',
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            // invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            username: {
                // 提示信息
                message: '用户名无效',
                // 验证规则
                validators: {
                    notEmpty: {
                        message: '用户名必须填写，不能为空'
                    },
                    stringLength: {
                        min: 4,
                        max: 10,
                        message: '用户名是4到10位的字符'
                    },
                    remote: { // 注意，这里不用拼接字符串.直接把要验证的字符放后面就行。
                        url: '/user/checkRegister' + $("#register input[name=username]").val(),
                        message: '用户名已经被使用',
                        delay: 500,
                        type: 'get'
                    },
                    // 自定义正则
                    regexp: {
                        //regexp: /^[\u4e00-\u9fa5]+$/,
                        regexp: /^[a-z|0-9|A-Z]+$/,
                        // message: '用户名必须是中文',
                        message: '用户名是英文或数字组合'
                    }
                }
            },
            password: {
                validators: {
                    notEmpty: {
                        message: '密码必须填写，不能为空'
                    },
                    stringLength: {
                        min: 6,
                        max: 20,
                        message: '密码应该是6-20位的字符'
                    },
                    regexp: {
                        regexp: /^[a-z|0-9|A-Z]+$/,
                        message: '密码是英文或数字组合'
                    }
                }
            },
            d_password: {
                validators: {
                    notEmpty: {
                        message: '密码必须填写，不能为空'
                    },
                    identical: {
                        field: 'password',
                        message: '两次密码不一致'
                    }
                }
            },
            email: {
                // 提示信息
                message: '邮箱无效',
                // 验证规则
                validators: {
                    notEmpty: {
                        message: '邮箱必须填写，不能为空'
                    },
                    // 自定义正则
                    regexp: {
                        regexp: /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
                        message: '请输入正确的邮箱格式'
                    }
                }
            },
            code: {
                validators: {
                    notEmpty: {
                        message: '验证码必须填写，不能为空'
                    },
                    stringLength: {
                        min: 4,
                        max: 4,
                        message: '请输入正确长度的验证码'
                    }
                }
            }
        }
        // 验证成功后的提交
    }).on('success.form.bv', function (e) {
        // Prevent form submission
        e.preventDefault();
        // 得到表单实例
        var $form = $(e.target);
        // 得到BootstrapValidation 验证实例
        var bv = $form.data('bootstrapValidator');
        // 使用ajax提交表单
        $.post($form.attr('action'), $form.serialize(), function (result) {
            if ("success" == result) {
                alert("注册成功!自动登录,跳转首页!");
                location.href = "index.html";
            } else if ("fail" == result) {
                alert("注册失败!");
            }
        });
    });
});

// 切换登录和注册表单
function changeForm(op) {
    if (op == 1) {
        // 改变登录按钮样式
        $(".login").addClass("active");
        $(".register").removeClass("active");
        // 显示登录表单
        $("#login").addClass("show-form");
        $("#register").removeClass("show-form");

    } else if (op == 2) {
        $(".register").addClass("active");
        $(".login").removeClass("active");
        $("#register").addClass("show-form");
        $("#login").removeClass("show-form");
    }
}

//登录验证码切换
function changeCode() {
    $(".pagecode").attr("src", "./user/kaptcha?m=" + Math.random());
}


//发送注册验证码
function sendEmail() {
    settime();
    let email = $("input[name=email]").val();
    console.log(email);
    $.ajax({
        url: "user/registerCode",
        data: {
            "email": $("input[name=email]").val()
        },
        type: "get",
        success: function () {
        }
    })

}

var countdown = 60;

//发送验证码按钮倒计时
function settime() {
    let obj = $("#emailBtn");
    if (countdown == 0) {
        obj.attr('disabled', false);
        obj.text("点击发送激活邮件");
        countdown = 60;
        return;
    } else {
        obj.attr('disabled', true);
        obj.text("重新发送(" + countdown + ")");
        countdown--;
    }
    setTimeout(function () {
            settime(obj)
        }
        , 1000)
}

